The present invention relates to the field of computer software testing, and in particular to methods and apparatus for creating, modifying, and using test programs to test the operation of software programs developed in an application modeling framework.
A wide variety of application modeling frameworks are used to reduce the time and effort spent in developing and testing software applications, especially business applications. On the development side, one such modeling framework is SAP NETWEAVER™ Visual Composer (“Visual Composer”) from SAP®, Germany. Visual Composer facilitates model-driven content development that enables applications to be created easily. In one application, Visual Composer provides a powerful framework that facilitates the creation of content, for example for SAP Enterprise Portal, using modeling capabilities and a visual user interface that enables applications to be created without manually writing code (code-free creation of applications). It provides sophisticated, yet simple-to-use tools for creating portal snippets (e.g., SAP iViews) that process data from back-end systems, including SAP and third-party enterprise systems. Visual Composer reduces the effort to create applications, allows reuse of already existing applications, and reduces costs for maintenance. Visual Composer is a fully Web-based application allowing (virtual) teams to easily build or customize pages and iViews as needed, accessing the software from virtually any machine worldwide.
Application modeling frameworks such as Visual Composer present a programming model to enable developers to access, manipulate, and extend the underlying application model. Further, these tools are typically client-side tools that have to work within a graphical user interface such as a browser program. They also need to support distributed development and evolution of modeling languages across separate teams.
Conventionally, in order to test the operation of code, or a portion of a program, a programmer may write test code or use test code already developed to test the program with respect to a particular software platform. For example, a Java programmer may develop their own testing code in Java, or may use a testing platform such as JUnit, which has been developed to provide a testing platform for Java developers. Other testing platforms such as XMLUnit, HTMLUnit, CUnit, etc., have been developed to assist programmers with testing software developed in extensible markup language (XML), hypertext markup language (HTML), script languages such as Java script, etc.
Generally, software testing, whether developed in a code-based environment or developed in an application modeling framework, is used to expose problems with the software to programmers, so they can debug software programs (code). As software developers usually generate their programs in a particular software language relevant to the platform they are using to generate the software programs, testing platforms have been developed to accommodate the debugging process for particular software platforms. For example, many code-based software developers work on platforms that allow them to debug programs in JAVA, C++, whereas other software programmers work on platforms that allow them to debug programs in scripted languages such as PERL, JAVA SCRIPT, etc. Similarly, using application modeling frameworks such as Visual Composer, software developers may debug programs used to extend a user's application. Regardless of how the programs are debugged, once the programs debugged to the satisfaction of the software developer, the software programs may then be processed (e.g., compiled) for use by clients who run the program on processor platforms suitable for the particular program.
Software testing platforms are often used to emulate the operation of the program in the software environment for its intended use. For example, software companies typically provide a testing platform for the software company's software such that developers and customers may test the software company's software in an operational environment that emulates the customer's business systems. Unfortunately, with regard to client-side application modeling, conventional platforms such as JUnit, require specialized coding customization to add or modify software testing, and/or adapt a particular test report to a user's system requirement. In addition, many of the custom coding process and test reports may require a custom user interface (UI) which adds to the complexity and cost of software development.
Therefore, what is needed is a software development and testing framework that allows a user to create and execute tests developed to test changes to a business enterprise software program, where the tests can be applied in a flexible way that is easily integrated with a user's software testing system and provides a simple to operate user interface.